package repository

import (
	"Data-API-MCP/backend/internal/domain/entity"
	"context"
)

// ConnectionRepository 连接仓储接口
type ConnectionRepository interface {
	// Create 创建连接
	Create(ctx context.Context, connection *entity.Connection) error
	// Update 更新连接
	Update(ctx context.Context, connection *entity.Connection) error
	// Delete 删除连接
	Delete(ctx context.Context, id string) error
	// FindByID 根据ID查找连接
	FindByID(ctx context.Context, id string) (*entity.Connection, error)
	// FindByName 根据名称查找连接
	FindByName(ctx context.Context, name string) (*entity.Connection, error)
	// List 获取连接列表
	List(ctx context.Context, offset, limit int) ([]*entity.Connection, error)
	// Count 获取连接总数
	Count(ctx context.Context) (int64, error)
	// ListByType 获取指定类型的连接列表
	ListByType(ctx context.Context, dbType string, offset, limit int) ([]*entity.Connection, error)
	// CountByType 获取指定类型的连接总数
	CountByType(ctx context.Context, dbType string) (int64, error)
	// TestConnection 测试连接
	TestConnection(ctx context.Context, connection *entity.Connection) error
}
